在数组A[1..n]中查找值为K的元素,若找到则输出其位置i(1<=i<=n),否则输出0作为标志.求个算法参考参考

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:28:23

这个……除了模拟还有什么更优的算法吗?
从头开始扫描,并设一个变量find=0,如果找到了一个值等于K,输出相应位置,且令find=1,如果一直扫描到结尾还是没有符合条件的值,即find==0,那么输出0

我用C给你写
#include <stdio.h>
#define n 100 //这个值可以根据n的大小改
#define n 10 //这个值可以根据k的大小改

main()
{
int find=0,i;
long a[n+1];
//读入数组
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
//开始扫描
for(i=1;i<=n;i++)
if(a[i]==k)
{
printf("%ld\n",i);//输出位置
if(find==0)
find=1; //改变find
}
//确定是否找到
if(find==0)
printf("0\n"); //如果没找到输出0

return 0; //结束程序
}

随手打出来的,没有验证过语法错误,只是个算法大题思路,希望对你有所帮助

设计一个算法用不多于3n/2的平均比较次数,在数组A〔1...n〕中找出最大和最小值的元素! C语言 在w数组中查找值为x的元素,若存在则输出该元素所在的位置,否则就将元素w[0]替换为x。 用c语言编写:从键盘输入10个数存入数组a中,统计数组下标是奇数且数组元素值为偶数的元素个数 一道C语言题(利用减半递推技术,写出长度为N的数组中最大元素的递归算法。设n=r的k次方,其k>=1) 计算机软件技术基础利用减半递推技术,写出求长度为n的数组中最大元素的递归算法。设n=2^k,其中k>=1! 有15个数按小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数组中第几个元素的值. 有15个数存放在一个数组中,输入一个数,要求用半查找法找出该数是数组中第几个元素的值。 对数组A中的N(0<N<L00)个整数从小到大进行连续编号,要求不能改变数组A中元素的顺序 在C语言中,lota(m,a,n)这个函数,其中m,n为实数,a为一个数组,这个函数是做什么用的啊? 请问在C++中如何编程实现一个含有n个元素的数组的累加,并输出相应累加值的新数组。